# 创建时间：2025/5/4 星期日 15:11
# 创建人：李德才

from collections.abc import Iterable

"""  map函数, map(func, iterable),把一个可迭代对象中的每个元素使用func函数进行处理,返回一个新的可迭代对象  """

list1 = map(lambda x: x * x, (x for x in range(1, 10)))

print(list1)  # 返回一个 map 对象

print(isinstance(list1, Iterable))  # 判断是否为可迭代对象

print(list(list1))  # 可以使用 list() 函数将 map 对象转换为列表

print("=======================================================")

"""  reduce函数, reduce(func, iterable),把一个可迭代对象中的元素使用func函数进行处理,返回一个值  """
from functools import reduce

""" 计算 1+2+3+4+5+6+7+8+9 """
num = reduce(lambda x, y: x + y, (x for x in range(1, 10)))
print(num)
print("----------------------------------------------------------")
""" 求最大值 """
print(reduce(lambda x, y: x if x > y else y, (x for x in range(1, 10))))
print("===================================================================")
""" filter函数, filter(func, iterable),把一个可迭代对象中的每个元素使用func函数进行处理,返回一个新的可迭代对象  """
""" 过滤出列表中的偶数 """
list2 = filter(lambda x: x % 2 == 0, (x for x in range(1, 10)))
print(list(list2))
print("===================================================================")
""" sorted函数, sorted(iterable, key=None, reverse=False),对可迭代对象进行排序,返回一个新的可迭代对象  """
""" 对列表进行排序 """
list3 = sorted([1, 2, 3, 4, 5, 6, 7, 8, 9], reverse=True)
print(list3)
print("===================================================================")
""" zip函数, zip(iterable1, iterable2, ...),把多个可迭代对象中的每个元素进行组合,返回一个新的可迭代对象  """
""" 对列表进行组合 """
list4 = zip([1, 2, 3, 4, 5], [6, 7, 8, 9])
print(list(list4))
print("===================================================================")
""" any函数, any(iterable),判断可迭代对象中的元素是否都为真,返回一个布尔值  """
""" 判断列表中的元素是否都为真 """
list5 = any([1, 2, 3, 4, 5, 6, 7, 8, 9])
print(list5)
print("===================================================================")
""" all函数, all(iterable),判断可迭代对象中的元素是否都为真,返回一个布尔值  """
""" 判断列表中的元素是否都为真 """
list6 = all([1, 2, 3, 4, 5, 6, 7, 8, 9])
print(list6)
print("===================================================================")
""" sum函数, sum(iterable, start=0),对可迭代对象中的元素进行求和,返回一个数值  """
""" 求列表中的元素之和 """
list7 = sum([1, 2, 3, 4, 5, 6, 7, 8, 9])
print(list7)
print("===================================================================")
""" len函数, len(iterable),对可迭代对象中的元素进行求长度,返回一个数值  """
""" 求列表中的元素长度 """
list8 = len([1, 2, 3, 4, 5, 6, 7, 8, 9])
print(list8)
print("===================================================================")
""" max函数, max(iterable),对可迭代对象中的元素进行求最大值,返回一个数值  """
""" 求列表中的元素最大值 """
list9 = max([1, 2, 3, 4, 5, 6, 7, 8, 9])
"""  key=lambda x: x + 1 表示对列表中的元素进行加1操作,需要使用 key 参数,key 参数是一个函数, """
list9_add = max([1, 2, 3, 4, 5, 6, 7, 8, 9], key=lambda x: x + 1)
print(list9)
print(list9_add)
print("===================================================================")
""" min函数, min(iterable),对可迭代对象中的元素进行求最小值,返回一个数值  """
""" 求列表中的元素最小值 """""" 求列表中的元素最小值 """
list10 = min([1, 2, 3, 4, 5, 6, 7, 8, 9])
print(list10)
print("===================================================================")
""" abs函数, abs(x),对可迭代对象中的元素进行求绝对值,返回一个数值  """
""" 求列表中的元素绝对值 """
list11 = abs(-1)
print(list11)
print("===================================================================")
""" round函数, round(x, n),对可迭代对象中的元素进行求圆整,返回一个数值，n为保留的小数位数 """
list12 = round(1.23456, 2)
print(list12)
print("===================================================================")
""" pow函数, pow(x, y),对可迭代对象中的元素进行求幂,返回一个数值 """
list13 = pow(2, 3)
print(list13)
print("===================================================================")
""" divmod函数, divmod(x, y),对可迭代对象中的元素进行求商和余数,返回一个元组 """
list14 = divmod(10, 3)
print(list14)
print("===================================================================")
""" chr函数, chr(x),对可迭代对象中的元素进行求字符,返回一个字符 """
list15 = chr(65)
print(list15)
print("===================================================================")
